﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KuPeiXun.Dao
{
    #region 城市表数据访问接口
    /// <summary>
    /// 城市表数据访问接口
    /// </summary>
    /// ===============================================================
    /// 作者：邹学良 
    /// 时间：2013-03-23
    /// 描述：创建
    /// 历史：无
    /// ===============================================================
    public interface ICity
    {
        #region 基本操作

        #region 添加一个城市数据
        /// <summary>
        /// 添加一个城市数据
        /// </summary>
        /// <param name="entity">城市实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        Guid Insert(KuPeiXun.Entity.City entity);
        #endregion

        #region 更新一个城市数据
        /// <summary>
        /// 更新一个城市数据
        /// </summary>
        /// <param name="entity">城市实体</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        bool Update(KuPeiXun.Entity.City entity);
        #endregion

        #region 删除一个城市数据
        /// <summary>
        /// 删除一个城市数据
        /// </summary>
        /// <param name="id">城市id</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        bool Delete(Guid id);
        #endregion

        #region 删除多个城市数据
        /// <summary>
        /// 删除多个城市数据
        /// </summary>
        /// <param name="idlist">城市id列表</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        bool DeleteRang(List<Guid> idlist);
        #endregion

        #endregion

        #region 获取数据

        #region 通过ID获取城市对象
        /// <summary>
        /// 通过ID获取城市对象
        /// </summary>
        /// <param name="id">城市ID</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        KuPeiXun.Entity.City SelectSingleById(Guid id);
        #endregion

        #region 通过名称获取城市对象
        /// <summary>
        /// 通过名称获取城市对象
        /// </summary>
        /// <param name="name">名称</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        KuPeiXun.Entity.City SelectSingleByName(string name);
        #endregion

        #region 通过名称,州省Id获取城市对象
        /// <summary>
        /// 通过名称,州省Id获取城市对象
        /// </summary>
        /// <param name="name">名称</param>
        /// <param name="provinceid">州省Id</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        KuPeiXun.Entity.City SelectSingleByName(string name, Guid provinceid);
        #endregion

        #region 通过关键字，数据列表条件获取城市数据列表
        /// <summary>
        /// 通过关键字，数据列表条件获取城市数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        List<KuPeiXun.Entity.City> SelectList(string keystr, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount);
        #endregion

        #region 通过关键字，数据列表条件，管理员ID获取城市数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，管理员ID获取城市数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="managerid">管理员id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        List<KuPeiXun.Entity.City> SelectList(string keystr, Guid managerid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount);
        #endregion

        #region 通过关键字，数据列表条件，州省ID获取城市数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，州省ID获取城市数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="provinceid">州省id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        List<KuPeiXun.Entity.City> SelectListByProvinceId(string keystr, Guid provinceid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount);
        #endregion

        #region 通过关键字，数据列表条件，州省ID，管理员Id获取城市数据列表
        /// <summary>
        /// 通过关键字，数据列表条件，州省ID，管理员Id获取城市数据列表
        /// </summary>
        /// <param name="keystr">关键字</param>
        /// <param name="provinceid">州省id</param>
        /// <param name="managerid">管理员Id</param>
        /// <param name="listparameter">数据列表条件</param>
        /// <param name="datacount">数据总数</param>
        /// <returns></returns>
        /// ===============================================================
        /// 作者：邹学良 
        /// 时间：2013-03-23
        /// 描述：创建
        /// 历史：无
        /// ===============================================================
        List<KuPeiXun.Entity.City> SelectListByProvinceId(string keystr, Guid provinceid, Guid managerid, KuPeiXun.Common.Entity.ListParameter listparameter, out int datacount);
        #endregion

        #endregion
    }
    #endregion
}
